﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Controls;
using WpfApplication2.UserControls;
using WpfApplication2.SindicatoWebService;

namespace WpfApplication2.ViewModels.Informes
{
    public class OrdenesVendidasViewModel: ViewModel
    {
        public Instancias Instancias { get; set; }
        public Service1SoapClient WS;

        public InformeOrdenVendidaDTO[] Resultados
        {
            get
            {
                return resultados;
            }
            set
            {
                if (resultados != value)
                {
                    resultados = value;
                    RaisePropertyChanged("Resultados");
                }
            }
        }
        private InformeOrdenVendidaDTO[] resultados;

        public string Periodo
        {
            get
            {
                return periodo;
            }
            set
            {
                if (periodo != value)
                {
                    periodo = value;
                    RaisePropertyChanged("Periodo");
                }
            }
        }
        private string periodo;

        public string CantidadTotal
        {
            get
            {
                return cantidadTotal;
            }
            set
            {
                if (cantidadTotal != value)
                {
                    cantidadTotal = value;
                    RaisePropertyChanged("CantidadTotal");
                }
            }
        }
        private string cantidadTotal;

        public string TotalRecaudado
        {
            get
            {
                return totalRecaudado;
            }
            set
            {
                if (totalRecaudado != value)
                {
                    totalRecaudado = value;
                    RaisePropertyChanged("TotalRecaudado");
                }
            }
        }
        private string totalRecaudado;
        
        public OrdenesVendidasViewModel(Instancias instancias, DateTime fechaInicio, DateTime fechaFin)
        {
            // TODO: Complete member initialization
            Instancias = instancias;
            WS = new Service1SoapClient();

            Resultados = WS.InformeOrdenesVendidas(fechaInicio, fechaFin);
            Periodo = String.Format("{0} - {1}", fechaInicio.ToShortDateString(), fechaFin.ToShortDateString());

            CantidadTotal = ObtenerCantidad(Resultados);
            TotalRecaudado = ObtenerRecaudado(Resultados);
        }

        private string ObtenerRecaudado(InformeOrdenVendidaDTO[] resultados)
        {
            var sum = 0;
            foreach (var res in resultados)
            {
                sum += Convert.ToInt32(res.Total.Replace("$","").Trim());
            }
            return "$" + sum.ToString();
        }

        private string ObtenerCantidad(InformeOrdenVendidaDTO[] resultados)
        {
            var sum = 0;
            foreach (var res in resultados)
            {
                sum += Convert.ToInt32(res.Cantidad.Trim());
            }
            return sum.ToString();
        }

    }
}
